From 80a59905fd36cc1625cf0e4d128bd764ecea3aca Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Mon, 22 Aug 2016 13:47:52 +0100 Subject: [PATCH] hvmloader: correctly copy signature to info structures The original code used sizeof(info->signature) as the size parameter for memcpy, which was wrong. Fix that by using structure assignment. Signed-off-by: Wei Liu Acked-by: Jan Beulich --- tools/firmware/hvmloader/ovmf.c | 8 ++++---- tools/firmware/hvmloader/seabios.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c index b4bcc93bb9..0ac3416f8c 100644 --- a/tools/firmware/hvmloader/ovmf.c +++ b/tools/firmware/hvmloader/ovmf.c @@ -68,10 +68,10 @@ static void ovmf_setup_bios_info(void) { struct ovmf_info *info = (void *)OVMF_INFO_PHYSICAL_ADDRESS; - memset(info, 0, sizeof(*info)); - - memcpy(info->signature, "XenHVMOVMF", sizeof(info->signature)); - info->length = sizeof(*info); + *info = (struct ovmf_info) { + .signature = "XenHVMOVMF", + .length = sizeof(*info) + }; } static void ovmf_finish_bios_info(void) diff --git a/tools/firmware/hvmloader/seabios.c b/tools/firmware/hvmloader/seabios.c index 5c9a3512bd..44ff0d7f25 100644 --- a/tools/firmware/hvmloader/seabios.c +++ b/tools/firmware/hvmloader/seabios.c @@ -56,10 +56,10 @@ static void seabios_setup_bios_info(void) { struct seabios_info *info = (void *)BIOS_INFO_PHYSICAL_ADDRESS; - memset(info, 0, sizeof(*info)); - - memcpy(info->signature, "XenHVMSeaBIOS", sizeof(info->signature)); - info->length = sizeof(*info); + *info = (struct seabios_info) { + .signature = "XenHVMSeaBIOS", + .length = sizeof(*info) + }; info->tables = (uint32_t)scratch_alloc(MAX_TABLES*sizeof(uint32_t), 0); } -- 2.30.2